package io;

import java.io.*;

/**
 * @author Luka
 * @date 2021/05/31 14:13
 *
 * 使用缓冲字符输入流按行读取字符串
 **/
public class BRDemo {
    public static void main(String[] args) throws IOException {
        /*
            将当前源代码输出到控制台上
         */

        FileInputStream fis = new FileInputStream("./note.txt");
        InputStreamReader isr = new InputStreamReader(fis);
        BufferedReader br = new BufferedReader(isr);

        String line;

        /*
            bufferedReader提供了读取一行字符串的操作
            String readLine()
            该方法会返回一行字符串(返回的字符串不含有最后的换行符)
            当返回值为null时说明流读取到了末尾
            需要注意 readLine方法并非是一次调用一次读取一行字符串,
            缓冲流会一次性读取若干字符到内部缓冲区(块读取操作)，所以每次
            调用readLine仅时返回缓冲区中的一行文本数据，当都返回过后会再次
            读取若干字符到缓冲区，如此往复直到读取完毕(流读取到末尾)
         */
        while ((line = br.readLine())!=null){
            System.out.println(line);
        }
        br.close();

    }
}